// function Foo() {
//     getName = function() {
//         console.log(1);

//     };
//     return this;
// }//构造函数提升

// Foo.getName = function() {
//     console.log(2);

// };//给函数添加了方法
// Foo.prototype.getName = function() {
//     console.log(3);

// }//Foo原型对象上添加了方法

// var getName = function() {
//     console.log(4);

// };//定义变量 值是一个方法

// function getName() {
//     console.log(5);

// }//自定义函数

function Foo() {
    getName = function () {
        console.log(1);
    };
    return this;
} //构造函数提升
/********** */
//var getName;重名了忽略掉
// function getName() {
//     console.log(5);
// }//自定义函数 提升 后面变成了4

Foo.getName = function () {
    console.log(2);
}; //给函数添加了方法
Foo.prototype.getName = function () {
    console.log(3);
} //Foo原型对象上添加了方法

getName = function () {
    console.log(4);
}; //定义变量 值是一个方法 



//请写出下列输出结果
Foo.getName(); //2
getName(); //4
Foo().getName(); //1 先执行window.Foo(), getName = function() { console.log(1);};覆盖了
getName(); //1


